package com.itheima.advantagesup.entity;

import com.itheima.advantagesup.vo.MenuVO2;
import com.itheima.advantagesup.vo.RoleInfoVO;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author zhengkai.blog.csdn.net
 * @description menu
 * @date 2023-07-26
 */
@Data
public class SysMenu implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    private Integer id;

    /**
     * 父级编号
     */
    private Integer pid;

    /**
     * 路由名称
     */
    private String path;

    /**
     * 组件路径
     */
    private String component;

    /**
     * 菜单名称
     */
    private String title;

    /**
     * 图标
     */
    private String icon;

    /**
     * 是否在菜单中显示，0不显示，1显示
     */
    private Integer isShow;

    /**
     * 是否缓存，0否，1是
     */
    private Integer isCache;

    /**
     * 是否外联，0否，1是
     */
    private Integer isLink;

    /**
     * 重定向地址
     */
    private String redirect;

    /**
     * 创建时间
     */
    private LocalDateTime createDate;

    /**
     * 更新时间
     */
    private LocalDateTime updateDate;

    /**
     * 删除标记
     */
    private Integer delFlag;

    /**
     * 类型，1是菜单，2按钮
     */
    private Integer type;

    /**
     * 排序
     */
    private BigDecimal sort;

    /**
     * 权限标识
     */
    private String mark;

    private String defaultData;

    private List<SysMenu> children;
    public MenuVO2 transformMenuVO2(){
        MenuVO2 menuVO2 = new MenuVO2();
        menuVO2.setId(id);
        menuVO2.setPid(pid);
        menuVO2.setPath(path);
        menuVO2.setComponent(component);
        menuVO2.setTitle(title);
        menuVO2.setIcon(icon);
        menuVO2.setIs_show(isShow);
        menuVO2.setIs_cache(isCache);
        menuVO2.setIs_link(isLink);
        menuVO2.setRedirect(redirect);
        menuVO2.setCreateDate(createDate);
        menuVO2.setUpdateDate(updateDate);
        menuVO2.setDel_flag(delFlag);
        menuVO2.setType(type);
        menuVO2.setSort(sort);
        menuVO2.setMark(mark);
        menuVO2.setDefaultData(defaultData);
        //menuVO2.setChildren();


        return menuVO2;

    }

}